The present invention relates to an IC card having various composite functions and a system for checking the functionality thereof.
IC card having built-in microcomputers and memories have recently been proposed and are now being widely used. In many cases, the microcomputer used in an IC card is a one-chip microcomputer which has built-in ROM, RAM, and peripheral circuits. Although the operation of the microcomputer is controlled by the program stored in the built-in ROM, the contents of the ROM are usually created during the production of the IC, and thus cannot be changed once the ROM is built into the IC card. On the other hand, the RAM is usually used for the various registers and flags which are necessary for the operation of the microcomputer, and the data used in the IC card system and the data used for managing memories are stored in an external memory, these items of data being read out and written under the control of the programs in the ROM.
Since conventional IC cards are configured as described above, once the IC cards have been completed, it is impossible to add to or change the programs built into the one-chip microcomputers.
Even in the case where the IC is not a single chip, for example, where the IC card contains a microprocessor on one chip and one or more additional memory chips associated with the microprocessor, many of the above problems still exist. In the one chip embodiment, the data bus interconnecting the operative units is internal to the chip. In the multiple chip case, the data bus must be brought external to the chips so that the chips can be interconnected, but it is still preferable to maintain the data bus within the card so that it is inaccessible from outside the card. Isolating the data bus in that way is important for protecting the card in the first instance, i.e., for preventing damage resulting from unwanted signals imposed on sensitive portions of the IC, but more importantly from a security standpoint, i.e., maintaining the secrecy and integrity of the information stored in the IC card. Thus, both categories of IC cards share the characteristic of having a relatively small fixed program memory which is not easily changed, and a relatively small associated programmable memory for storing temporary results, but not directly accessible to the environment outside the IC card.
In addition, a convenient feature to incorporate into each IC card may be a checking program for checking the functions of the IC card, so that a functional check could be performed by utilizing this program during the checking process. However, it is difficult to build such a checking program into a conventional IC card because of limits on program capacity heretofore encountered.